Ubuntu 18.04 YOLOv5 环境配置 GPU |
您所在的位置:网站首页 › github yolov5卫星 › Ubuntu 18.04 YOLOv5 环境配置 GPU |
Ubuntu 18.04 YOLOv5 环境配置 GPU
互联网 2021/6/4 7:29:21 标签: 文件夹 XML Ubuntu txt train Coco -- 18.04 yolov5 Ubuntu 18.04 YOLOv5 环境配置 GPU 提示 确保你有Nvidia显卡,并确定所支持的CUDA版本准备CUDA + cuDNN安装显卡驱动安装CUDA安装cuDNN OpenCV + OpenCV_ContribYolov5提示 确保你有Nvidia显卡,并确定所支持的CUDA版本 准备 Yolov5opencv + opencv_contrib (下面使用的 o…![]() 检查适合自己的显卡驱动 ubuntu-drivers devices
然后重启电脑即可,可以输入nvidia-smi来查看驱动是否安装成功 进入下载好的cuda文件所在的文件夹,打开终端,输入命令: sudo sh cuda_xxx_linux.run选择continue,取消勾选Driver,然后安装即可。 然后打开bashrc,输入命令: sudo gedit ~/.bashrc在最后添加以下内容: export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda-10.2/lib64 export PATH=$PATH:/usr/local/cuda-10.2/bin具体版本号根据你下载的为准 可以输入nvcc -V检查CUDA是否安装成功 安装cuDNN解压cuDNN压缩文件 sudo tar -xzvf cudnn-xxx.tgz会在当前文件夹下生成一个名为cuda的文件夹 然后输入以下命令: sudo cp cuda/lib64/libcudnn* /usr/local/cuda-10.2/lib64/ sudo cp cuda/include/cudnn* /usr/local/cuda-10.2/include/ sudo chmod a+r /usr/local/cuda-10.2/include/cudnn.h sudo chmod a+r /usr/local/cuda-10.2/lib64/libcudnn*到这里cuDNN就安装完成了 OpenCV + OpenCV_Contrib打开Ubuntu商店,搜索cmake,安装即可 将下载好的OpenCV-4.5.1源码解压到主目录下,并在OpenCV-4.5.1中新建build文件夹 打开CMake,选择源码路径以及编译路径,并勾选Grouped和Advanced 点击Configure,选择Unix Makefiles ,勾选Use default native compilers 点击Configure 注意,make -j后面的数字是线程数,根据你自己的CPU情况选择合适的线程,比如我的CPU是8核16线程,使用8个线程进行编译。 编译完成之后,输入以下命令安装: sudo make installopencv 到这里就安装成功了 Yolov5GitHub地址https://github.com/wudashuo/yolov5 Yolo v5按照网络大小分为四个模型,分别是Yolov5s、Yolov5m、Yolov5l和Yolov5x,它们的准确度和速度的比较如下图所示: 下载上述GitHub链接中的代码,在下载的yolov5-master文件中打开终端,输入以下命令配置环境: pip3 install -r requirement.txt【注意】有可能会出现下图中的错误 打开终端,输入以下命令即可: pip3 install scikit-build然后重新执行以下命令等待安装完成。 pip3 install -r requirement.txt如果下载速度过慢或下载失败,可以选择其他源下载,比如指定清华源: pip3 install -r requirement.txt -i https://pypi.tuna.tsinghua.edu.cn/simple如果在安装opencv-python时卡住或时间过长,则需要先升级pip3,然后重新执行上述命令: sudo pip3 install –upgrade pip通过以上步骤,Yolo v5运行所需的环境就已经配置好了,接下来就可以进行简单的测试。在yolov5-master文件夹下打开终端,然后运行以下命令: python3 detect.py --source 0 # 本机默认摄像头 file.jpg # 图片 file.mp4 # 视频 path/ # 文件夹下所有媒体 path/*.jpg # 文件夹下某类型媒体 rtsp:// # rtsp视频流 http:// # http视频流如果没有指定权重,则会自动下载默认的COCO预训练权重模型yolov5s.pt,最终检测结果会保存在./runs/detect/文件夹中,运行结果如下图所示。 当然我们还可以指定权重文件,权重文件下载链接为,将下载好的权重文件放在yolov5-master/weights/文件夹中,下述命令使用yolov5m.pt去检测./data/image文件夹中的所有图片和视频,并设置置信度为0.5: python3 detect.py --source ./data/images/ --weights ./weights/yolov5m.pt --conf 0.5在./runs/detect/文件中找到最新的文件夹,里面是最后一次运行的检测结果,如下图所示: 以上的步骤都是使用官方训练好的权重模型进行检测,如果我们想训练自己的数据集,就需要经过采集图片,标注图片和训练模型这三步。下面将会对这些步骤一一介绍。 下载图片将训练集放至yolov5-master/coco/images/train/文件夹内,该训练集有40张图片,只有两个类别,分别是Curry和Durant。将验证集放至yolov5-master/coco/images/val/文件夹内 安装图片标注软件labelImg: pip3 install labelImg如果出现上图中的错误,请在终端中输入 echo 'export PATH=/home/xxx/.local/bin:$PATH' >>~/.bashrc source ~/.bashrc pip3 uninstall labelImg pip3 install labelImg打开labelImg labelImg可能会出现下图中的错误 输入以下指令,然后重新打开labelImg: sudo apt install libxcb-xinerama0打开目录,选择yolov5-master/coco/images/train/,选中2.jpg,点击创建区块,框选Curry和Durant并设置标签名称为各自的姓名: 点击保存至图片所在的目录下即可: 完成这些步骤之后,对一张图片进行的标注操作就完成了。剩余的图片请大家遵循上述步骤依次标注。完成标注之后,将train文件夹内的所有xml文件统一移动到yolov5-master/coco/labels/train/内,接下来我们需要自己写一个python程序xml_to_txt.py,将xml文件中的目标位置信息提取到txt格式的文件中。 import glob import xml.etree.ElementTree as ET class_names = ['Curry', 'Durant'] path = 'coco/labels/train/' def single_xml_to_txt(xml_file): tree = ET.parse(xml_file) root = tree.getroot() txt_file = xml_file.split('.')[0] + '.txt' with open(txt_file, 'w') as txt_file: for member in root.findall('object'): picture_width = int(root.find('size')[0].text) picture_height = int(root.find('size')[1].text) class_name = member[0].text class_num = class_names.index(class_name) box_x_min = int(member[4][0].text) box_y_min = int(member[4][1].text) box_x_max = int(member[4][2].text) box_y_max = int(member[4][3].text) x_center = (box_x_min + box_x_max) / (2 * picture_width) y_center = (box_y_min + box_y_max) / (2 * picture_height) width = (box_x_max - box_x_min) / picture_width height = (box_y_max - box_y_min) / picture_height print(class_num, x_center, y_center, width, height) txt_file.write(str(class_num)+' '+str(x_center)+' '+str(y_center)+' ' +str(width) +' '+str(height)+'\n') def dir_xml_to_txt(path): for xml_file in glob.glob(path + '*.xml'): single_xml_to_txt(xml_file) dir_xml_to_txt(path)将xml_to_txt.py放置在yolov5-master/文件夹下,输入以下命令运行: python3 xml_to_txt.py 该程序会在yolov5-master/coco/labels/train/文件中生成每一个xml文件对应的txt文件。然后将xml文件删除即可。 对验证集的处理步骤和上述一致,只需将xml_to_txt.py中的path = 'coco/labels/train/'修改为path = ‘coco/labels/val/’。 然后制作一个数据文件,进入到yolov5-master/coco/data/文件夹中,拷贝coco.yaml并重命名为mydata.yaml。打开mydata.yaml,修改训练集、验证集、测试集路径、定义总类别数和定义类别名称。该文件内只保留以下内容: train: ./coco/images/train/ val: ./coco/images/val/ test: ./coco/images/test/ nc: 2 names: [ 'Curry', 'Durant' ]完成上述步骤之后,就可以开始训练了,在yolov5-master/文件夹中打开终端,输入以下命令: #使用yolov5s模型初始化网络训练mydata数据集,300个epochs,batch size设为16 python3 train.py --batch 16 --epochs 300 --data ./data/mydata.yaml --weights ./weights/yolov5s.pt训练得到的权重文件保存在yolov5-master/runs/train/文件夹中。 使用训练好的权重检测图片: python3 detect.py --source ./coco/images/val/ --weights ./runs/train/exp3/weights/best.pt --conf 0.5结果如下: ![]() 本站文章仅代表作者观点,不代表本站立场,所有文章非营利性免费分享。 本站提供了软件编程、网站开发技术、服务器运维、人工智能等等IT技术文章,希望广大程序员努力学习,让我们用科技改变世界。 [Ubuntu 18.04 YOLOv5 环境配置 GPU]http://www.zyiz.net/tech/detail-181194.html 赞(0) 相关文章 更多> 2022-10-08二极管、稳压二极管、发光二极管电路测试 2022-10-08为什么全世界只有13台根域名解析服务器 2022-10-08小白都能看明白的VLAN原理解释 2022-10-08私有化部署需求井喷,SaaS厂商如何高效交付? 2022-10-08江苏省高等学校计算机等级考试三级软件技术及应用考试(基础题知识点总结) 2022-10-08华为防火墙中的VGMP/VRRP/HRP 2022-10-08炸裂!万字长文拿下HTTP 我在字节跳动等你! 2022-10-08来自中等职业学校第十九届技能竞赛网络搭建与应用竞赛赛,“交换机“和“路由器“解析和参考答案 2022-10-08中科蓝讯蓝牙:RAM使用,ram.ld文件和map.txt文件的查看 2022-10-08什么是ARP?如何防范ARP欺骗技术? |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |